#include <cstdlib>
#include <iostream>
#include <iterator>
#include <time.h>
#include "kumite_zamkniete.h"
#include "kumite_abcd.h"
#include "menu.h"

using namespace std;

void Menu_Kumite(){
      char wybor;
    char czy_koniec;
do{
       cout<<"\t------------------------------------"<<endl;
       cout<<"\t---  P Y T A N I A   K U M I T E ---"<<endl;
       cout<<"\t------------------------------------"<<endl;
       cout<<"\t| 1) PYTANIA PRAWDA FALSZ          |"<<endl;
       cout<<"\t------------------------------------"<<endl;
       cout<<"\t| 2) PYTANIA A B C D               |"<<endl;
       cout<<"\t------------------------------------"<<endl;
       cout<<"\t| 0) WSTECZ                        |"<<endl;
       cout<<"\t------------------------------------"<<endl;
       cout<<"\tPODAJ WARTOSC: ";
       cin>> wybor;
       switch(wybor){
                    case '1':
                         cout<<endl;
                         Menu_Kumite_Zamkniete();
                         break;
                    case '2':
                         cout<<endl;
                         Menu_Kumite_ABCD();
                         break;
                    case'0':
                            break;
                    default:
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<"\t ! ! ! PODALES ZLA OPCJE, SPROBOJ JESZCZE RAZ ! ! !  "<<endl;
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<endl;
                    }
    }while(wybor != '0');
}

void Instrukcja(){
      char wybor;
       cout<<"\t--------------------------------------------"<<endl;
       cout<<"\t---  I N S T R U K C J A   O B S L U G I ---"<<endl;
       cout<<"\t-------------------------------------=------"<<endl;
       
       cout<<endl<<"\tPostepuj zgodnie z wymaganymi poleceniami. Jesli zgodnie z menu czy poleceniami, jestes proszony o wcisniecie litery lub cyfry, wcisnij odpowiednio jedna litere lub jedna cyfre. W niektorych przypadkach blad zostanie zauwazony i bedzie prosba o poprawienie decyzji, jednak w niektorych przypadkach program sie 'wysypie' i bedzie trzeba go wylaczyc i ponownie uruchomic. Wtedy nalezy wcisnac tradycyjnie przycisk do wylaczania okienka lub nacisnac klawisze CTRL i C."<<endl;
       cout<<endl<<"\tNa pytania typu Prawda/Falsz odpowiadasz naciskajac klawisze z literami 't' lub 'n'. Nacisniecie innego klawisza bedzie nieprawidlowe. W przypadku pytan typu ABCD mozesz udzielac odpowiedzi, wciskajac klawisze z literami 'a', 'b', 'c' lub 'd'. Kiedy rozwiazujesz pytania przykladowe, w kazdej chwili mozesz wyjsc z tej opcji wciskajac klawisz 'q' (quit). Jesli rozwiazujesz test przykladowy, musisz przejsc przez wszystkie pytania (zgodnie z podana iloscia). Jesli wtedy chcesz wyjsc z programu, musisz wcisnac klawisze CTRL i C."<<endl;
       cout<<endl<<"\tJesli rozwiazujesz pytania w formie sprawdzania wiedzy (nie test), to w przypadku podania blednej (moim zdaniem) odpowiedzi otrzymasz odpowiedni komentarz, uzasadniajacy, czemu podana przez Ciebie odpowiedz jest bledna."<<endl;
       cout<<endl<<"\tJesli wybierzesz opcje 'Pytania po kolei' beda one w takiej samej kolejnosci, w jakiej sa w wersji papierowej. Pozwoli Ci to wybrac moment od ktorego chcesz zaczac wyswietlanie pytan."<<endl;
      
       cout<<endl<<"Wcisnij cokolwiek, zeby wyjsc z instrukcji: ";
       cin >>wybor;
}

void Menu_Kumite_Zamkniete(){
      char wybor;
    char czy_koniec;
do{
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t----  K U M I T E   P R A W D A / F A L S Z ----"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 1) WSZYSTKIE PYTANIA  PO KOLEI               |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 2) WSZYSTKIE PYTANIA  LOSOWO                 |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 3) TEST LOSOWY WYBOR PYTAN                   |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 0) WSTECZ                                    |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\tPODAJ WARTOSC: ";
       cin>> wybor;
       switch(wybor){
                    case '1':
                         cout<<endl;
                         funkcja1_KumiteZamkniete();
                         break;
                    case '2':
                         cout<<endl;
                         funkcja2_KumiteZamkniete();
                         break;
                    case '3':
                         cout<<endl;
                         funkcja3_KumiteZamkniete();
                         break;
                    case '0':
                         break;
                    default:
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<"\t ! ! ! PODALES ZLA OPCJE, SPROBOJ JESZCZE RAZ ! ! !  "<<endl;
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<endl;
                    }
    }while(wybor != '0');
    
}

void Menu_Kumite_ABCD(){
      char wybor;
    char czy_koniec;
do{
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t----  K U M I T E   P Y T A N I A   A B C D ----"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 1) WSZYSTKIE PYTANIA  PO KOLEI               |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 2) WSZYSTKIE PYTANIA  LOSOWO                 |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 3) TEST LOSOWY WYBOR PYTAN                   |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\t| 0) WSTECZ                                    |"<<endl;
       cout<<"\t------------------------------------------------"<<endl;
       cout<<"\tPODAJ WARTOSC: ";
       cin>> wybor;
       switch(wybor){
                    case '1':
                         cout<<endl;
                         funkcja1_KumiteABCD();
                         break;
                    case '2':
                         cout<<endl;
                         funkcja2_KumiteABCD();
                         break;
                    case '3':
                         cout<<endl;
                         funkcja3_KumiteABCD();
                         break;
                    case '0':
                         break;
                    default:
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<"\t ! ! ! PODALES ZLA OPCJE, SPROBOJ JESZCZE RAZ ! ! !  "<<endl;
                            cout<<"\t-----------------------------------------------------"<<endl;
                            cout<<endl;
                    }
    }while(wybor != '0');
}

void Info(){
     char wybor;
     cout<<"\t--------------------------------------------"<<endl;
     cout<<"\t---  I N F O   O   P R O G R A M I E     ---"<<endl;
     cout<<"\t-------------------------------------=------"<<endl;
     
     cout<<endl<<"\tProgram zostal stworzony, by sprawdzac wiedze z przepisow sedziowskich karate WKF na podstawie testow. Testy sa przykladowe, jakie sa umieszczone na stronie WKF (World Karate Federation) oraz ich odpowiedniki w wersji polskiej na stronie PZK (Polski Zwiazek Karate). Ta wersja programu zawiera jedynie pytania z kumite, gdyz po modyfikacji przepisow dotyczacych kata, na dzien dzisiejszy nie ma uaktualnionych pytan. Takze pytania typu ABCD nie sa uaktulanione do nowych przepisow z 2012 roku, wiec pozwolilem w odpowiednich miejscach napisac wyjasnienie lub zmodyfikowac odpowiedz w celu jasnosci pytania i odpowiedzi."<<endl;
     cout<<endl<<"\tDo kazdego pytania umiescilem komentarz, uzasadniajacy zgodnie z przepisami poprawnosc odpowiedzi. Nie ukrywam, ze w niektorych pytaniach odpowiedzi sa niejednoznaczne, watpliwe i okreslenie jednoznacznej odpowiedzi nie bylo rzecza latwa, lub nie znalazlem odpowiedzi potwierdzajacej wcale. Staralem sie umieszczac odpowiednie przypisy w miejscach niepewnych odpowiedzi. "<<endl;
     cout<<endl<<"\tJako, ze (chyba) nie ma udostepnionych poprawnych odpowiedzi do pytan, prosba do Ciebie, korzystajacego z tego programu, o powiadomieniu, gdy zostanie zauwazone bledna odpowiedz (podana przeze mnie jako prawdziwa) lub znaleziony nieopoprawny komentarz. Za wszelkie uwagi, sugestie na temat dzialania programu, pytan, odpowiedzi, jestem bardzo wdzieczny. Chcialbym, zeby ten programik byl pomocny dla innych w celu utrwalania i sprawdzania swojej wiedzy."<<endl;
     cout<<endl<<"\tW tej wersji programu nie ma polskich liter i znakow. Moze to powodowac drobne problemy i komplikacje, jednak mysle, ze nie bedzie to stwarzac wiekszych problemow ze zrozumieniem pytania."<<endl;
     cout<<endl<<"\tPytania dotycza przepisow zawodow Kumite WKF/PZK z 2012, wersja 7.1. Kazdy chetny moze korzystac i udostepniac ten program dla wlasnych potrzeb. \nPawel Piotrowski, luty 2013."<<endl;
     
     cout<<endl<<"Wcisnij cokolwiek, zeby wyjsc z informacji: ";
     cin >>wybor;
}
